package com.tubeonfire.controller;

import java.io.IOException;
import java.util.logging.Logger;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.tubeonfire.entity.Channel;
import com.tubeonfire.model.ChannelModel;
import com.tubeonfire.search.TubeSearchModel;

@SuppressWarnings("serial")
public class ChannelServlet extends HttpServlet {

	private static final Logger log = Logger.getLogger(ChannelServlet.class
			.getName());

	public void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws IOException {
		try {
			String[] splitted = req.getRequestURI().split("/");
			String id = "";
			if (splitted.length == 3) {
				id = splitted[2];
			} else {
				resp.sendRedirect("/home");
			}
			int page = 1;
			try {
				page = Integer.parseInt((String) req.getParameter("page"));
			} catch (Exception e) {
				page = 1;
			}
			Channel obj = ChannelModel.getById(id);
			if (obj != null) {
				TubeSearchModel model = new TubeSearchModel();
				model.setPage(page);
				model.prepareTubeByChannel(obj.getId());
				req.setAttribute("model", model);
				req.setAttribute("obj", obj);
				req.setAttribute("url", req.getRequestURL().toString());
				req.getRequestDispatcher("/channel.jsp").forward(req, resp);
			} else {
				resp.sendError(
						404,
						"This channel is not exists or has been deleted ! We are sorry for the inconvenience !");
			}
		} catch (Exception e) {
			log.warning(e.toString());
			e.printStackTrace();
			resp.sendError(4000,
					"Website is down for maintenance. We are sorry for the inconvenience !");
		}
	}
}
